package yl.hs.bmipfull.service.finance;

import yl.hs.bmipfull.viewmodels.PageQuery;
import yl.hs.bmipfull.viewmodels.PageResult;
import yl.hs.bmipfull.viewmodels.finance.ContractAccountVO;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 张凯
 * @apiNote 合同台帐信息-IService
 * @since 2022/1/11 2:55 下午 创建
 */
public interface IContractAccountService extends IFinanceService{

    /**
     * 获取合同台帐信息
     * @return 台帐信息List
     * @throws Exception 运行异常
     * @param query 查询条件
     * @param page  页码
     * @param rowNum 每页条数
     */
    PageResult<ContractAccountVO> queryList(PageQuery query, Integer page, Integer rowNum) throws Exception;
    PageResult<ContractAccountVO> queryHfList(PageQuery query, Integer page, Integer rowNum) throws Exception;
    PageResult<ContractAccountVO> queryHfListByGD(PageQuery query, Integer page, Integer rowNum) throws Exception;
    /**
     * 获取合同余额
     * @param contractSN 合同编号
     * @return 余额
     */
    BigDecimal getContractBalance(String contractSN, Date startTime);
    /**
     * 获取合同台帐信息
     * @return 台帐信息List
     * @throws Exception 运行异常
     * @param query 查询条件
     * @param page  页码
     * @param rowNum 每页条数
     */
    PageResult<ContractAccountVO> queryListConstruction(PageQuery query, Integer page, Integer rowNum) throws Exception;

    ContractAccountVO queryListConstruction(String contractSN);
}
